﻿using System;

namespace Fabrication.Tests.TestClasses
{
    internal class DefaultConstructor
    {
    }

    internal class PrivateDefaultConstructor
    {
        private PrivateDefaultConstructor() { }
    }

    internal class ConstructorWithParameters
    {
        public int Value { get; set; }

        public ConstructorWithParameters(int value)
        {
            Value = value;
        }
    }

    internal class ConstructorWithMultipleParameters
    {
        public int Value { get; private set; }
        public Guid Id { get; private set; }
        public string Name { get; private set; }

        public ConstructorWithMultipleParameters(int value, Guid id, string name)
        {
            Value = value;
            Id = id;
            Name = name;
        }
    }

    internal class MultipleConstructorsWithoutDefault
    {
        public MultipleConstructorsWithoutDefault(int value)
        {
        }


        public MultipleConstructorsWithoutDefault(int value, int value2)
        {
            throw new NotSupportedException();
        }
    }

    internal class PrivateConstructorWithParameters
    {
        private PrivateConstructorWithParameters(int value)
        {
        }

        public static PrivateConstructorWithParameters CreateInstance()
        {
            return new PrivateConstructorWithParameters(999);
        }

        public string StringProperty { get; set; }
    }
}
